東京地方裁判所 昭和57年(ワ)14001号 判決 1987年1月30日
原告 マイクロソフトコーポレーシヨン
被告 秀和システムトレーデイング株式会社 外一名
主文
一 被告らは、別紙物件目録記載の図書を出版、頒布してはならない。
二 被告らは、主文第一項記載の図書を廃棄せよ。
三 訴訟費用は被告らの負担とする。
事実
第一当事者の求めた裁判
一 請求の趣旨
主文と同旨
二 請求の趣旨に対する答弁
原告の被告らに対する請求をいずれも棄却する。
訴訟費用は原告の負担とする。
第二当事者の主張
一 請求の原因
1 原告は、米国ワシントン州法によつて設立され、主にパーソナルコンピユータの用途に使用するソフトウエアを開発し、製作、販売することを業とする会社である。
2 原告は、別紙著作権目録記載の著作物(以下、「本件著作物」という。)の著作権者である。
本件著作物は、以下の過程において、製作され、販売された。
(一) 昭和五四年四月一〇日、原告は日本電気株式会社(以下、「日本電気」という。)から、PC―八〇〇一用ベーシツクインタープリタプログラムの開発を依頼され、原告は、本件著作物たるプログラムを製作した。
(二) 本件著作物は、原告の役員であるウイリアム・H・ゲイツ外の技術者が、職務として、約八ケ月を要して、開発したものである。
本件著作物の著作権者の表示は、プログラムの稼働時にデイスプレイ上に、Copyright一九七九(C)by Microsoftと示されるようにプログラミングされている。
(三) 原告は、右開発した本件著作物をフロツピーデイスクに格納したうえ、日本電気に引渡し、同社は、これをROMに複製して、PC―八〇〇一パーソナルコンピユータ(以下、「本件パソコン」という。)に組込み販売をしている。
(四) なお、原告は、本件著作物を米国において、公衆に販売したり、あるいは頒布したりしたことはない。
以上のとおり、本件著作物は、原告の発意に基づき、原告の業務に従事する者が、職務上作成するものであつて、原告名義の下に公表したものであるので、原告が著作権を有するといえる。
3 本件著作物は、前項主張のとおりであつて、著作権法第六条第二号及び第三号により、日本国において著作権法により保護される。
4 本件著作物の概要は以下のとおりである。すなわち、本件著作物は、本件パソコンに組込まれたベーシツクインタープリタのソースプログラムであつて、このプログラムは、マイクロ・プロセツサを利用した小型コンピユータシステムである本件パソコンに入力されたベーシツク言語の命令ないしプログラムを解読して、マイクロ・プロセツサの処理しうる命令語その他の情報を逐語的に変換するオペレーテイングシステムであり、記号語(アツセンブリ言語)を用いて表現されている。
また、本件著作物は、これをマイクロ・プロセツサが処理しうる二進の電気信号(バイナリコード)に変換され、本件パソコンのコンピユータ・システムの記憶装置であるROMに複製、収納されている(この機械語に変換されたプログラムを、以下、「本件オブジエクトプログラム」という。)。
5 本件著作物は、以下のとおり、著作権法上の著作物に該当する。
(一) 一般に、コンピユータプログラムとは、電子計算機を機能させて一定の結果を得ることを目的として指令を組合せたものとして表現したものであつて、この指令はプログラム言語の命令その他情報を組合せて作製され、プログラム著作者の高度な学術的思想を表現し、かつ、個性的な特徴を有するもので、著作権法第二条第一項第一号にいう「思想を創作的に表現したものであつて、学術の範囲に属するもの」に該当し、同法第一〇条第一項第一号にいう「その他の言語の著作物」に該当する。
(二) 本件著作物についていえば、本件パソコンをベーシツク言語によつて対話型に容易に稼働させるように機能させ、ベーシツク言語の命令またはプログラムを逐語的に処理してその命令またはプログラムを入力した者が意図した結果を出力することを目的としているものである。
本件著作物は、本件パソコンの中央演算処理装置(CPU)に使用されている米国ザイログ社製のZ八〇マイクロプロセツサの記号語(アツセンブリ言語)を用いて記述されているもので、同語の命令その他情報を組合わせて作製されており、本件パソコンのハードウエアの構成に合致し、その機能を充分に発揮させるようにプログラムの全体的構成、各ルーチンの構成及び各アドレスの命令語その他情報の組合せに至るまで、著作者の高度なコンピユータ及びプログラム言語に関する知識を駆使して作製されているものであるから、学術の範囲に属する言語の著作物ということができる。
(三) 本件著作物は、合計二二九ものルーチン(ある機能を遂行するための一群の命令)を有するものであるが、このうちの一つであるCSAVEルーチンと名付けられたルーチン(右は、コンピユータのメモリに格納されているプログラムをカセツトテープに格納する命令群である。)の中の特にCOINITと名付けられたモジユール(カセツトインターフエースを初期化するサブルーチン)を例にとり、個々の命令の内容を分析し、本件著作物が思想を創作的に表現していることを説明すると次のとおりとなる。
(なお、アドレス番号、アツセンブリ言語、その内容の順に記載した。)
(1) 1EC0~1EC2 CALL L0C46(COINIT)
0C46番地から始まるCOINITルーチンを呼び出す。
(2) 0C46~0C48 CALL LF1B9(HOOK27)
F1B9番地のHOOK27を呼び出す。同番地には、通常RET(リターン)命令があるのみで、何らの処理もせずに次のアドレスである0C49番地に移る。
F1B9番地はRAM領域であつて、書き換えが自由に行えるため、ROM領域の要所にこのCALLnn命令を置いておくことによつて、呼び出されるRAM領域のみを加筆修正することにより、実質的にROM内プログラムを修正することができる。
(3) 0C49~0C4B LD A’(LEA66)(PORT30)
EA66番地に入つているI/Oポート30HのデータをAレジスタ(アキユムレータ)に転送する。I/O30Hでは、ビツト0からビツト5までの6ビツトを使用している。
I/Oポート30Hに対応するビツトを1もしくは0にセツトして、出力してやることによつて、出力のハードウエアに操作者の選択する適宜な動作を行わせることができる。
(4) 0C4C~0C4D AND 0FH
Aレジスタの内容と数値0FHとのビツトごとの論理積(共に1のときのみ出力1)をとり、その結果をAレジスタに格納する。
このAND OFHのもつ論理的な意味は、上位四ビツトを0にするということであり、実質的な意味は、カセツトインターフエイスを用いるようにAレジスタのデータを変換することである。
(5) 0C4E~0C4F OR 0CH
Aレジスタの内容と数値0CHとのビツトごとの論理和(いずれかが1のとき出力1)をとり、その結果をAレジスタに格納する。
このOR OFHの論理的な意味は、ビツト3とビツト2を1にセツトするということであつて、実質的な意味は、モータをON、スペース信号(録音開始を示す信号)を出力するように、Aレジスタの内容を変更する。
(6) 0C50~0C52 CALL L0C38(SET30H)
0C38番地(SET30H)を呼び出す。
(7) 0C38~0C3A LD(LEA66)’ALD(PORT30)’A
Aレジスタの内容をEA66番地に格納する。EA66番地にAレジスタの内容を書くことによつて、ROM内にある他のサブルーチンからも現在のI/Oポート30Hの状態を知ることができる。
(8) 0C3B~0C3C OUT(30H)’A
Aレジスタの内容をI/Oポート30Hに出力する。Aレジスタの内容は、前記4、5の結果、各ビツトは、000011※※とされていたので、カセツトインターフエイスを選択し、モータのリレーをONに制御し、スペースフイーダを出力するようにI/Oポート30Hに組み込まれたIC回路が動作することになる。
(9) 0C3D RET
RET(リターン)命令で、0C53番地へ戻る。
(10) 0C53~0C55 CALL L0D14(RE8251)
0D14番地(RE8251)を呼び出す。この意味は、カセツトインターフエイスに用いられる8251というLSIを初期化する。
(11) 0D14~0D15 LD A’0EH
8251は、CPU側の並列データを直列データに、また直列データを並列データに変換する通信インターフエースである。8251を使用する場合は、まず、8251の動作を設定するために、8251をリセツトし、その後に、モードワード、次にコマンドワードを8251のコントロールワードレジスタに書き込まなければならない。8251をプログラムでリセツトする場合は、8251のコントロールワード入力がモード設定或はコマンド設定のどちらとして扱われるかわからないので、コントロールワードレジスタに対して、一回以上のダミーデータを送り、次のコマンド設定状態で、8251をリセツトすることになる。このダミーデータは、ビツト6が0でなければならない。
ここでは、LD A’0EHという命令によつて、ダミーデータ0EHがAレジスタに格納される。
(12) 0D16~0D17 OUT(21H)’A
I/Oポート21H(8251のコントロールワードレジスタ)にAレジスタの内容(ダミーデータ)を出力する。
(13) 0D18~0D19 LD A’40H
Aレジスタの内容を40Hとする。この40Hというデータは、8251をリセツトするためのデータである。
(14) 0D1A~0D1B OUT(21H)’A
I/Oポート21HにAレジスタの内容(リセツトデータ40H)を出力し、8251をリセツトする。
(15) 0D1C RET
RET(リターン)命令によつて、0C56番地へ戻る。
(16) 0C56~0C57 LD A’L00CE(0CEH)
Aレジスタの内容を数値0CEHにする。前記のとおり、8251はリセツト直後にコントロールワードレジスタに書き込んだ情報をモードワードとするため、まずレジスタにモード設定用のデータを格納する。
このモード設定用データ0CEH(11001110B)の意味は、上位ビツトより11(ストツプビツト2)00(パリテイーなし)11(8ビツトデータ)10(非同期モード)となつている。8251というLSIは多くの通信機能を有するが、本機では非同期通信という通信方法でデータの転送を行う。
この0CEHのデータにより、ストツプビツトとして2ビツトを用いる、パリテイビツトを用いない、8ビツトの直列データを送る、非同期通信である、ということを示している。
(17) 0C58~0C59 OUT(21H)’A
8251のコントロールワードレジスタ(I/Oポート21H)にAレジスタの内容(モード設定用のデータ)を出力する。
(18) 0C5A~0C5B LD A’11H
Aレジスタの内容を数値11Hにする。コマンドワード設定用のデータが11Hである。11Hは、ビツト4とビツト0が1になつている。このビツト4は8251のエラーリセツトを示し、ビツト0は送信可能状態を示す。
(19) 0C5C~0C5D OUT(21H)’A
8251のコントロールワードレジスタ(I/Oポート21H)にAレジスタの内容(コマンド設定用のデータ)を出力する。
(20) 0C5E~0C60 CALL L0C7C(TML0P2)
0C7C番地(TMLOP2)を呼び出す。TMLOP2とは、時間つぶしのサブルーチンであり、これを呼び出すことによつて、戻つてくるまでの約3秒間、テープに録音開始時間を示すスペースフイーダを記録する。
(21) 0C7C PUSH DE
スタツクにDEレジスタの内容(DレジスタとEレジスタの内容を合わせた16ビツトのデータ)を転送する。これは、時間つぶしのサブルーチンにおいてDレジスタ、Eレジスタを使用するので、スタツクにDEレジスタの内容を退避しておくために行われる。
(22) 0C7D PUSH HL
スタツクにHLLジスタの内容を転送する。これも、(21)と同様にレジスタの内容を失わないよう退避するものである。
(23) 0C7E~0C7F LD E’6
Eレジスタの内容を6にする。Eレジスタの内容によつて時間つぶしを行う時間の量を決定する。
(24) 0C80~0C81 JR LOC6D(TML00P)
0C82番地から0EBHバイト前に戻つたところへ、ジヤンプ(相対ジヤンプ)する。すなわち、0C6D番地(TMLOOP)へジヤンプすることになる。
(25) 0C6D~0C6F LD HL’O
HLレジスタの内容を0000にする。
(26) 0C70 DEC L
Lレジスタの内容から1引く。1バイトのデータ0から1を引くと0FFH(255 補数表示)となる。
(27) 0C71~0C72 JR NZ’LOC70(TMLOP1)
Lレジスタの内容がゼロでないとき0C70番地(TMLOP1)にジヤンプする。
再度TMLOP1に戻り、DEC LによつてLレジスタの内容をマイナス1にする。このように(26)と(27)によつてループ(くりかえし)になつている。即ち、Lレジスタが256回デイクリメントされたとき初めてこのループを脱出する。
(28) 0C73 DEC H
Hレジスタの内容から1を引く。
(29) 0C74~0C75 JR NZ’L0C70(TMLOP1)
(27)と同様でありループを作る。但し、(26)、(27)のループの外側に(28)、(29)のループがあるため二重のループとなつている。Hレジスタを256回デイクリメントを行うと(29)のループを脱出する。
(30) 0C76 DEC E
Eレジスタの内容から1を引く。
(31) 0C77~0C78 JR NZ’L0C70(TMLOP1)
(27)、(29)と同様である。ここでは、Lレジスタのループ、Hレジスタのループ、Eレジスタのループという三重のループを時間つぶしのために実行する。
(32) 0C79 POP HL
スタツクに退避させておいたHLレジスタの内容を復帰させる。
(33) 0C7A POP DE
スタツクに退避させておいたDEレジスタの内容を復帰させる。
(34) 0C7B RET
0C61番地へ戻る。この時点で時間つぶしのサブルーチンが終了する。
(35) 0C61~0C63 LD A’(LEA66)(PORT30H)
最後にI/Oボート30Hに出力したデータを格納してあるEA66番地(PORT30H)の内容をAレジスタに格納する。
(36) 0C64~0C65 AND 0FBH
Aレジスタの内容と数値0FBHとの論理積を行う。この意味は、旧Aレジスタの内容がいかなるデータであつても、ビツト2を0にするということである。I/Oボート30Hのビツト2は、スペース信号とマーク信号の制御に用いられているので、今までスペース信号を出力していたのをマーク信号に切り換えるためのデータを用意している。
(37) 0C66~0C68 CALL LOC38(SET30H)
(36)でAレジスタにマーク信号を出力するデータが格納され、このデータをサブルーチンSET30Hを呼び出すことにより、I/Oポート30Hへ出力し、またEA66番地へ格納する。
SET30Hでの処理は、(7)、(8)、(9)と同じである。
(38) 0C69 PUSH DE
スタツクにDEレジスタの内容を転送する。
(39) 0C6A PUSH HL
スタツクにHLレジスタの内容を転送する。
(40) 0C6B~0C6C LD E’1
Eレジスタに1を格納する。これは、時間つぶしのための初期設定であり、このループ脱出には、約〇・五秒が必要であり、これによりマーク信号を〇・五秒出力する。
6 被告秀和システムトレーデイング株式会社(以下、「被告秀和」という。)は、コンピユータに関する出版物の販売等を、同東京スガキ印刷株式会社(以下、「被告スガキ」という。)は、出版物の印刷等をそれぞれ業とする会社である。
被告秀和は、昭和五七年六月ころ、本件パソコンに組込まれている本件オブジエクトプログラムをそのまま一六進数のコードに置き換え、本件オブジエクトプログラムの全部を複製し、さらに本件オブジエクトプログラムを逆アツセンブルして解読し、本件著作物の全部を無断複製したものであつて、前者の複製行為は、本件著作物の複製物を更に複製したものであり、後者の複製行為は、本件著作物の複製そのものである。被告スガキは、右各複製物を別紙物件目録記録の図書(以下、「本件図書」という。)に印刷、複製し、被告秀和はこれを頒布している。
7 よつて、原告は、被告らに対し、著作権法第一一二条第一項により、本件図書の出版、頒布の差止めを求め、同条第二項により、本件図書の廃棄を求める。
二 請求の原因に対する認否
1 請求の原因1の事実は認める。
2 同2の事実中、プログラム稼働時にデイスプレイ上に、Copyright一九七九(C)by Microsoftと表示されることは認め、その余の事実は知らない。
3 同3の事実は知らない。
4 同4の事実は認める。
5 同5の事実は否認する。
著作権法第二条によれば、著作物とは、「思想又は、感情を創作的に表現したものであつて文芸、学術又は音楽の範囲に属するものをいう。」と定義されている。著作権法により、著作物として保護される所以は、人格的利益の保護という点にある。
ところで、本件著作物は、オペレーテイングシステム(基本ソフト)の一つであるが、このオペレーテイングシステムは、より効果的かつ高速なデータの処理を目的とするものであつて、科学における理論ということができる。思想とか感情は、極力排除され、合理性のみが追求されるものである。この点では、アプリケーシヨンプログラムやゲークのプログラムが創作者の目的に沿つた思想、感情を表現しているのとは全く異なる。
本件著作物は、人格権的要素をまつたく無視しうる科学技術における法則を当てはめた当然の帰結として生じたものであるから、著作権の保護の対象にならない。
6 同6の事実中、被告らの業務内容、被告秀和が、本件オブジエクトプログラムをそのまま一六進数のコードに置き換えたこと、本件オブジエクトプログラムを逆アツセンブルして解読したこと、本件図書を出版、頒布したこと、また、被告スガキが、本件図書を印刷したことは認め、その余の事実は否認する。
被告秀和が、逆アツセンブルリストを解読し、ラベル及びコメントを付し、本件図書のソースリスト欄の各記載をしたのは、同被告が、本件パソコンのオペレーテイングシステムを研究した成果を発表した行為であつて、右行為は、独自の創作活動と評価すべきものであつて、本件著作物の複製行為ではない。
本件パソコンは、二〇万台以上販売されており、この利用者が本件パソコンの有効な利用を計るためには、その構造とくにオペレーテイングシステムである本件著作物の内容を知る必要があるが、原告も日本電気もこれを公開せず、利用者は部分的に解析しながら利用しているものであるところ、被告秀和は、本件パソコンの利用者のために、原告あるいは日本電気株式会社に代わつてオペレーテイングシステムの総合的解説として本件図書を発表したものであつて、被告らの行為は正当である。
第三証拠(省略)
理由
一 請求の原因1の事実は当事者間に争いはない。
二 本件著作物の製作過程、権利の帰属等について検討する。
原本の存在及び成立に争いのない甲第三号証、成立に争いのない同第七号証、証人安田寿明の証言及び弁論の全趣旨を総合すれば、次のとおりの事実が認められ、これに反する証拠はない。
本件著作物は、日本電気の依頼に基づき、原告において、開発、製作したものである。開発を担当したのは、原告の会長であるウイリアム・H・ゲイツを始めとするその他原告の技術者であつて、約八ケ月の期間を費やして完成した。そして、昭和五四年八月三日ころ日本電気に引き渡し、同社は、これをROMに複製して、本件パソコンに組込み販売したものであるが、この間、米国において、公衆に販売、或は頒布されたことはない。なお、本件著作物の著作権者が原告に帰属する旨の表示は、本件パソコンの稼働時にデイスプレイに示されるようにプログラムされてある。
以上の事実が認められる。
右各事実に照らすならば、本件著作物(著作権法上保護の対象になるか否かは後述する。)は、原告の発意に基づき、原告の業務に従事するものが職務上作成したものであつて、原告名義の下に公表したものといえるから、著作権は原告に属するというべきである。
更に、本件著作物は、米国内において、一切頒布されておらず、日本電気により、日本国内で複製、頒布されたものであり、また、万国著作権条約によつて、わが国が保護の義務を負う著作物であるということができるから、著作権法第六条第二号、第三号の規定により、著作権法上保護を受けるものというべきである。
三 次に本件著作物の内容についてみてみる。
弁論の全趣旨により成立の認められる甲第一号証、証人安田寿明の証言により成立の認められる甲第五、六号証及び同証人の証言によれば、本件著作物の内容について、次の事実が認められる。
1 本件著作物は、NEC PC八〇〇一用のBASICインタープリタのソースプログラムであつて、記号語(アツセンブリ言語)を用いて記述されている。本件著作物の具体的な表現態様は、本件パソコンのROMに格納されている本件オブジエクトプログラムを逆アツセンブルプログラムによつて逆アツセンブル(オブジエクトプログラムをソースプログラムであるアツセンブリ言語に転換する。)して作成したプログラムリスト(甲第一号証)の一頁ないし二五〇頁の各B欄記載のとおりである。
2 しかして、このプログラムの目的は、米国ザイログ社製のZ八〇マイクロ・プロセツサを利用した日本電気製の小型コンピユータシステムである本件パソコンに入力されたベーシツク言語の命令ないしプログラムを解読して、マイクル・プロセツサの処理し得る命令語その他の情報を逐語的に変換することである。
換言すれば、ベーシツク言語で書かれたアプリケーシヨンプログラムをパソコンにより入力したときに、このプログラムを解読して、これの実行するためのものということができる。
3 プログラムを実行するためには、次のような処理手順が必要であるが、本件著作物は、これらの処理手順を誤りなく実施することができるよう作成されている。
イ 電源入力により処理を開始する。
ロ 処理開始後、プログラムの初期化を行う(各種入出力装置の初期設定、画面の消去、サイン・オンメツセージの表示、実行時に必要な各種一時記憶値の設定など)。
ハ 命令を受けられる状態になると、OKというメツセージを表示してそのことを知らせる。
ニ 入力された行が数字で始まつている場合には、中間コードと呼ばれる圧縮した形でメモリに格納する(間接モード)。入力された行が数字で始まつていない場合は、直ちにその行の解釈が始まり、該当する命令、実行文の処理モジユールに処理が委ねられる(直接モード)。
ホ 各命令、実行文はそれぞれに該当する実行モジユールにより必要な処理が行われる。
4 また、本件著作物には、合計二二九ものルーチン(例えば、メモリに格納されているプログラムをカセツトテープに格納するルーチンや一行ステートメントの入力ルーチン等)を構成要素として有しており、適宜選択されて、使用されるよう作られている。
四 そこで、前項のような内容を有する本件著作物が、著作権法上保護の対象になるものであるか否かについて考察する。
1 前記認定のとおり、本件著作物は、NEC PC八〇〇一用のBASICインタープリタのソースプログラムであつて、記号語(アツセンブリ言語)を用いて表現されたものであり、米国ザイログ社製のZ八〇マイクロ・プロセツサを利用した小型コンピユータシステムである本件パソコンに入力されるベーシツク言語の命令ないしプログラムを解読して、マイクロ・プロセツサの処理し得る命令語その他の情報を逐語的に変換することを目的としているものである。
そして、本件パソコンのハードウエアの構成に合致し、その機能を充分に発揮させるように、プログラムの全体的構成、各ルーチンの構成、各アドレスの命令語その他情報の組合せについて、作成者の創意、工夫がなされている。
2 この点を、詳細にみてみると、前掲各証拠によれば、本件著作物のうちアドレス1ECOからOC6Cまでの各アドレスに記載されている命令或はステイトメントは、請求の原因5の(三)記載のとおりの意味に理解することができ、右はコンピユータのメモリ内に格納されているプログラムをカセツトテープに格納する命令群であることがわかる。
更に、本件著作物のうちアドレス3CECから3D11までの各アドレスに記載されている命令或はステイトメントの意味内容は次のとおりである。
(なお、アドレス番号、アツセンブリ言語、その内容の順に記載した。)
(一) 3CEC CALL L1B7E(INPUTL)
1B7E番地から始まるINPUTLと名付けられたサブルーチンを呼び出す。INPUTLというサブルーチンは、一行のベーシツクプログラムをコンソールから読み込む働きをしている。リターンキーが押されたならば、これを一行と認識し、INBUFFとラベルのつけられたEC96番地からED93番地までのエリアに文字列を格納する。
(二) 3CEF JP C’L3C9F(COMIN2)
キヤリーフラグがセツトされていれば(C=1)、COMIN2のラベルが付してある3C9F番地にジヤンプする(条件付きジヤンプの命令)。強制終了のためのキーが押された場合はキヤリーフラグがセツトされるが、このとき入力は無効であるから、入力された一行の内容は検討することなく、初期の入力待ちの状態にする。
(三) 3CF2 RST 10H
CALL 0010Hと同じである。RST命令は1バイト命令で、CALL命令は3バイト命令であるので、2バイト分メモリの節約となる。10番地では、CHRGE1というラベルの付した4259番地へジヤンプする。ここでの処理は、入力された文字列のうち有効なものの最初の一文字のアスキーコードをAレジスタに入れ、入力された先頭の文字が数字である場合にはキヤリーフラグをセツトし、数字でなければリセツトしてリターンする。
(四) 3CF3~3CF4 INC AとDEC AINC A命令は、Aレジスタに1を加算する命令で、DEC A命令は、Aレジスタから1を減算する命令である。ここでの処理は、キヤリーフラグに影響を与えず、Aレジスタの内容が0かどうかをチエツクするためのものである。
(五) 3CF5 JP Z’L3C9F(COMIN2)
Zフラグがセツトされている場合(Aレジスタの内容が0の場合)、COMIN2というラベルの付されたアドレス(3C9F番地)にジヤンプし、初期の入力待ちの状態にする。
(六) 3CF8 PUSH AF
AレジスタとFレジスタの内容をスタツクに退避する。Fレジスタのキヤリーフラツグには、行番号があるかないか(間接モードか直接モードか)という情報が入つており、Fレジスタの内容を保存する必要がある。
(七) 3CF9 CALL L44B5(GETLNO)
GETLNOというラベルの付されているアドレス(44B5番地)のサブルーチンを呼び出す。
GETLNOというサブルーチンは、入力された一行から行番号を取り出す働きをしている。取り出した行番号は、数値に変換されてDEレジスタ・ペアに保存され、リターンする。
(八) 3CFC CALL L4082(SKPSPC)
SKPSPCというラベルが付されたアドレス(4082番地)のサブルーチンを呼び出す。SKPSPCというサブルーチンは、行番号の終りを検出するために、GETLNOが読みとばしたスペースキヤラクタコードをもとに戻す働きをする。
(九) 3CFF LD A’(HL)
HLレジスタ・ペアが指し示しているINBUFF中の入力行の一文字をAレジスタに入れる。
(一〇) 3D00 CP 20H
Aレジスタの内容とスペースキヤラクタ(20H)を比較する。Aレジスタの内容がスペースキヤラクタなら、ゼロフラグがセツトされ、異なつていれば、ゼロフラグがリセツトされる。
(一一) 3D02 CALL Z’L26C7(INCHL)
ゼロフラグがセツトされていたら、HLレジスタ・ペアの値を一つ増す。ベーシツクのLIST文(ベーシツク言語で書かれたプログラムをデイスプレーに顕出する命令)を実行すると、行番号の直後には、最小でも一個のスペースキヤラクタが入ることになつており、必ず入るスペースキヤラクタを、中間言語にしておく必要はないため、HLレジスタ・ペアの値を一つ増やすことによつて、一バイトを倹約している。
(一二) 3D05 PUSH DE
DEレジスタ・ペアの内容(行番号)をスタツクに退避して保存する。次の命令によつて、DEレジスタ・ペアの内容がこわされるのを回避するためである。
(一三) 3D06 CALL L3E65(CHGINT)
CHGINTというラベルの付されたアドレス(3E65番地)のサブルーチンを呼び出す。このサブルーチンは、INBUFFに格納されている入力のうち、HLレジスタ・ペアが指し示す文字から、その行の終りまでを中間言語に変換し、TEXTBUFというラベルの付されたEB57番地からEC91番地までの315バイトのエリアに格納する。変換し終つたら、HLレジスタ・ペアにTEXBUFの先頭アドレス(EB57番地)の一バイト前のアドレスであるEB56を入れてリターンする。
(一四) 3D09 POP DE
DEレジスタ・ペアの値(行番号の数値)をスタツクから復帰させる。
(一五) 3D0A POP AF
AFレジスタ・ペアの値(Fレジスタのキヤリーフラグには現在処理している行が間接モードであるか直接モードであるかの情報が入つている。)をスタツクから復帰させる。
(一六) 3D0B LD(LEF8D)’HL
LD(SAVETP)’HL
HLレジスタ・ペアの値(TEXTBUFの1バイト前のアドレス)をSAVETPというラベルの付されたアドレス(EF8D番地)に転送して、テキスト・ポインタであるHLレジスタ・ペアの値を保存する。
(一七) 3D0E CALL LE174(HOOK4)
HOOK4というラベルの付されたアドレス(F174番地)のサブルーチンを呼び出す。ここには、リターン命令が書かれているため、何の動作もせずに戻つてくる。
(一八) 3D11 JP NC’L423B(PRACT3)
もし、キヤリーフラグがリセツト(0)されていたら、PRACT3というラベルの付されたアドレス(423B番地)に移る。この場合行番号のない直接モードなので、PRACT3では、入力された命令をすぐに実行する。
もし、キヤリーフラグがセツト(1)されていたら、行番号が存在している間接モードであり、入力された文は、実行されずに、次のエデイターセクシヨン(ここでは、行番号、中間言語をベーシツクのプログラムエリアに格納する)に移る。
以上のとおり、アドレス3CECから3D11までの各アドレスに記載されている命令群は、キーボード等から入力された命令やステートメントを間接か直接かのいずれのモードであるかを判断して、次のステツプに移行するルーチンであることが認められる。
3 右認定した各事実によれば、本件著作物は、ベーシツク言語によつて、本件パソコンに入力された命令またはプログラムを逐語的に処理して、命令を入力した者が意図した結果を出力するように、プログラムの構成、ルーチン、サブルーチンの活用、組合わせに至るまで、プログラム言語に関する高度な専門的知識を駆使して作製されており、プログラム作製者の学術的思想が表現されたものであることが明らかであり、したがつて、学術の範囲に属する著作物に当たるということができる。
4 ところで、被告らは、本件著作物は、いわゆるオペレーテイングシステム(基本ソフト)の一つであるところ、右は、アプリケーシヨンプログラム等と異なり、効率的かつ高速なデータの処理のみを目的とするものであつて、著作者の思想とか感情は排除されるものであるから、著作権法上の保護を受け得ない、と主張するので、以下この点につき、検討する。
一般にコンピユータプログラムについては、一定の目的に達するための解決手段は唯一ではなく、さまざまな解決手段の選択が可能である。本件のように本件パソコンに搭載するためのベーシツクインタープリタを作製する目的においても同様であつて、前に詳細に検討したとおり、作製にあたつては、目的達成のため種々の問題を細分化して分析し、それぞれについて解法を発見し、右発見された解法に従つて、アツセンブリ言語によつて、命令及びその他の情報の組合せを記述して、プログラムを完成させたのであつて、そのすべての過程は、一定のものではなく、作製者の個性や思想を反映させることによつて異なるのみならず、むしろ、その個別性に価値を見出すことができるものである。この点は、ゲームのプログラムやアプリケーシヨンプログラムであつても、本件のようなオペレーテイングシステムであつても少しも変わるところはない。
したがつて、本件著作物が、著作権法上の保護の対象にならないとする被告の主張は理由がないことになる。
五 ついで、被告らに、著作権侵害行為があつたか否かについて、検討する。
1 被告秀和が本件パソコンに組込まれている本件オブジエクトプログラムをそのまま一六進数のコードに置き換えたこと、更に本件オブジエクトプログラムを逆アツセンブルしたうえ、解読して、ラベル及びコメントを付したことは、当事者間に争いはない。
同被告の前者の行為が、本件著作物の複製物である本件オブジエクトプログラムを複製したものと解することができるのは明らかである。
同被告の後者の行為について検討する。
前掲甲第一号証、成立に争いのない甲第二号証によれば、次の事実が認められる。
本件著作物(甲第一号証の各頁のB欄)と本件図書の各頁のロ欄とは、表記上相違する点が存在する。
例えば、アドレス0004についてみると、本件著作物においては、JP L003Bと記述され、他方、本件図書のロ欄においては、JP WAMCHK;CHECK COLD START OR WARM STARTと記述されている点に相違がある。しかしながら、前者は、3B番地に無条件でジヤンプすることを意味しているところ(003B番地は、WARM CHECKのサブルーチンが始まる。)、後者は、WAMCHKとのラベルを付したアドレスに無条件でジヤンプすることを意味しているが、これは、ジヤンプした先の機能を英語の略語を用いてラベル表示をし、かつその意味を英文で説明しているのであつて、両者は同じ内容であると解される。
その他、両者の表現上の相違点は、殆どラベル表示の差異によるものである。
以上の事実が認められる。
そうであるとすると、両者は、同じプログラムであるということができるから、被告秀和が本件オブジエクトプログラムを逆アツセンブルして、解読したものにラベル及びコメントを付した行為は、本件著作物の複製行為であると評価することができる。
また、被告スガキが、本件図書を印刷、複製し、被告秀和がこれを頒布していることは、当事者間に争いはない。
2 被告らは、被告秀和が、逆アツセンブルリストを解読し、ラベル及びコメントを付し、本件図書のソースリスト欄の各記載をしたのは、研究成果の発表であり、独自の創作活動というべきであるから、著作権侵害には当らない旨、また、被告らが本件図書を発表したのは、本件パソコンの利用者のためであるから、被告らの行為は正当である旨、主張する。
しかしながら、原著作物に依拠して新たに作製したものが、創作性ないし独自性を有するか否かは、原著作物の著作権を侵害するか否かの点に、影響を与えるものではないというべきであり、また、著作者がソースプログラムとして公開していない本件著作物につき、その著作者の意思に反して発表する行為が、利用者の便宜の故に正当化される余地がないのは当然の理であるので、被告らの主張はそれ自体失当でいずれも採用することはできない。
六 以上のとおり、被告らの前記各行為は、原告の有する本件著作権を侵害するものというべきであり、また、本件図書は、右侵害の行為によつて作成された物ということができるので、原告は被告らに対して、本件図書の出版、頒布の差止めを求め、あわせて、本件図書の廃棄を求めることができるというべきである。
よつて、原告の被告らに対する本件請求をいずれも認容することとし、訴訟費用の負担につき、民事訴訟法第八九条、第九三条一項をそれぞれ適用のうえ、主文のとおり判決する。
(裁判官 元木伸 飯村敏明 富岡英次)
著作物目録
NEC PC―八〇〇一用のBASICインタープリタのソースプログラム
なお、日本電気株式会社製のNEC PC―八〇〇一 パーソナルコンピユータに格納されているプログラムを逆アツセンブルしたリスト(PAGE1)は、別紙一のとおりであり、本件著作物は、そのB欄に記載されている。
別紙一
物件目録
題号 PC―八〇〇一 BASIC SOURCE PROGRM LISTINGS
THE WHOLE ANALYSIS OF Ver 一・〇&一・一
(ピーシー八〇〇一 ベーシツク ソース プログラム リスト一・〇および一・一巻の完全解析)
(発行所 秀和システム トレーデイング株式会社)
なお、本件図書のプログラムリストの第一頁は、別紙二のとおりである。
別紙二